package com.yuantong.xyerp.rest.config.APIJson;

import apijson.RequestMethod;
import apijson.framework.APIJSONObjectParser;
import apijson.framework.APIJSONParser;
import apijson.orm.SQLConfig;
import com.alibaba.fastjson.JSONObject;

import java.util.Map;
import java.util.Set;

import static apijson.framework.APIJSONConstant.DEFAULTS;
import static apijson.framework.APIJSONConstant.FORMAT;

/**
 * Created by Jianguo.Yin on 2021-07-13.
 */
public class XyerpParser extends APIJSONParser {

    public XyerpParser() {
        super();
    }
    public XyerpParser(RequestMethod method) {
        super(method);
    }
    public XyerpParser(RequestMethod method, boolean needVerify) {
        super(method, needVerify);
    }

    // 默认查询数量10
    // @Override
    // public int getDefaultQueryCount() {
    //     return 10;
    // }
    // @Override
    // public int getMaxQueryPage() {
    //     return 100;
    // }
    // @Override
    // public int getMaxQueryCount() {
    //     return 100;
    // }
    // @Override
    // public int getMaxUpdateCount() {
    //     return 10;
    // }
    @Override
    public int getMaxSQLCount() {
        return 500;
    }
     @Override
     public int getMaxObjectCount() {
         return 10;
     }
    // @Override
    // public int getMaxArrayCount() {
    //     return 5;
    // }
     @Override
     public int getMaxQueryDepth() {
         return 6;
     }

    @Override
    public JSONObject parseResponse(JSONObject request) {
        // 这里还是原请求
        // System.out.println("requestYjg: " + request);
        return super.parseResponse(request);
    }

    @Override
    public APIJSONObjectParser createObjectParser(JSONObject request, String parentPath, SQLConfig arrayConfig
            , boolean isSubquery, boolean isTable, boolean isArrayMainTable) throws Exception {
        return new XyerpObjectParser(getSession(), request, parentPath, arrayConfig
                , isSubquery, isTable, isArrayMainTable).setMethod(getMethod()).setParser(this);
    }
}
